<html>
<head>
  <script src="sorttable.js"></script>
  <script src="sourceview.js"></script>
  <link rel="stylesheet" type="text/css" href="style.css">
  <title>zcov: /home/vagrant/workspace/proj_libjpeg/cov/jfdctfst.c</title>
</head>
<body>
<center><h1> zcov: <a href="index.html">/home/vagrant/workspace/proj_libjpeg/cov</a>/<a href="jfdctfst.c.html">jfdctfst.c</a> </h1></center>
<hr>


<center>
<table id="headertable" cellpadding=2>
  <tr>
    <td bgcolor=#ACACFF> <b>Files:</b> </td>
    <td bgcolor=#F0F0FF> 1 </td>
    <td width="30"></td>
    <td bgcolor=#ACACFF> <b>Branches&nbsp;Taken:</b> </td>
    <td bgcolor=#F0F0FF align=right> <b>100.0%<b> </td>
    <td bgcolor=#F0F0FF align=right> 4&nbsp;/&nbsp;4 </td>
  </tr>
  <tr>
    <td bgcolor=#ACACFF> <b>Generated:</b> </td>
    <td bgcolor=#F0F0FF> 2016-04-07&nbsp;17:52 </td>
    <td width="30"></td>
    <td bgcolor=#ACACFF> <b>Branches&nbsp;Executed:</b> </td>
    <td bgcolor=#F0F0FF align=right> <b>100.0%<b> </td>
    <td bgcolor=#F0F0FF align=right> 4&nbsp;/&nbsp;4 </td>
  </tr>
  <tr>
    <td colspan=2> </td>
    <td width="30"></td>
    <td bgcolor=#ACACFF> <b>Line&nbsp;Coverage:</b> </td>
    <td bgcolor=#F0F0FF align=right> <b>100.0%</b> </td>
    <td bgcolor=#F0F0FF align=right> 68&nbsp;/&nbsp;68 </td>
  </tr>
</table>
</center>
<p>
<hr>

<center>
<table id="fileheadertable" cellpadding=2>
  <tr>
    <td bgcolor=#ACACFF> <b>Programs:</b> </td>
    <td bgcolor=#F0F0FF> 1 </td>
    <td width="30"></td>
    <td bgcolor=#ACACFF> <b>Runs</b> </td>
    <td bgcolor=#F0F0FF align=right> 5570 </td>
  </tr>
</table>
</center>
<p>
<hr>

<pre>
<span class="lineNum">       1 </span>                : <I><FONT COLOR="#B22222">/*
<span class="lineNum">       2 </span>                :  * jfdctfst.c
<span class="lineNum">       3 </span>                :  *
<span class="lineNum">       4 </span>                :  * Copyright (C) 1994-1996, Thomas G. Lane.
<span class="lineNum">       5 </span>                :  * This file is part of the Independent JPEG Group's software.
<span class="lineNum">       6 </span>                :  * For conditions of distribution and use, see the accompanying README file.
<span class="lineNum">       7 </span>                :  *
<span class="lineNum">       8 </span>                :  * This file contains a fast, not so accurate integer implementation of the
<span class="lineNum">       9 </span>                :  * forward DCT (Discrete Cosine Transform).
<span class="lineNum">      10 </span>                :  *
<span class="lineNum">      11 </span>                :  * A 2-D DCT can be done by 1-D DCT on each row followed by 1-D DCT
<span class="lineNum">      12 </span>                :  * on each column.  Direct algorithms are also available, but they are
<span class="lineNum">      13 </span>                :  * much more complex and seem not to be any faster when reduced to code.
<span class="lineNum">      14 </span>                :  *
<span class="lineNum">      15 </span>                :  * This implementation is based on Arai, Agui, and Nakajima's algorithm for
<span class="lineNum">      16 </span>                :  * scaled DCT.  Their original paper (Trans. IEICE E-71(11):1095) is in
<span class="lineNum">      17 </span>                :  * Japanese, but the algorithm is described in the Pennebaker &amp; Mitchell
<span class="lineNum">      18 </span>                :  * JPEG textbook (see REFERENCES section in file README).  The following code
<span class="lineNum">      19 </span>                :  * is based directly on figure 4-8 in P&amp;M.
<span class="lineNum">      20 </span>                :  * While an 8-point DCT cannot be done in less than 11 multiplies, it is
<span class="lineNum">      21 </span>                :  * possible to arrange the computation so that many of the multiplies are
<span class="lineNum">      22 </span>                :  * simple scalings of the final outputs.  These multiplies can then be
<span class="lineNum">      23 </span>                :  * folded into the multiplications or divisions by the JPEG quantization
<span class="lineNum">      24 </span>                :  * table entries.  The AA&amp;N method leaves only 5 multiplies and 29 adds
<span class="lineNum">      25 </span>                :  * to be done in the DCT itself.
<span class="lineNum">      26 </span>                :  * The primary disadvantage of this method is that with fixed-point math,
<span class="lineNum">      27 </span>                :  * accuracy is lost due to imprecise representation of the scaled
<span class="lineNum">      28 </span>                :  * quantization values.  The smaller the quantization table entry, the less
<span class="lineNum">      29 </span>                :  * precise the scaled value, so this implementation does worse with high-
<span class="lineNum">      30 </span>                :  * quality-setting files than with low-quality ones.
<span class="lineNum">      31 </span>                :  */</FONT></I>
<span class="lineNum">      32 </span>                : 
<span class="lineNum">      33 </span>                : #<B><FONT COLOR="#5F9EA0">define</FONT></B> <FONT COLOR="#B8860B">JPEG_INTERNALS</FONT>
<span class="lineNum">      34 </span>                : #<B><FONT COLOR="#5F9EA0">include</FONT></B> <B><FONT COLOR="#BC8F8F">&quot;jinclude.h&quot;</FONT></B>
<span class="lineNum">      35 </span>                : #<B><FONT COLOR="#5F9EA0">include</FONT></B> <B><FONT COLOR="#BC8F8F">&quot;jpeglib.h&quot;</FONT></B>
<span class="lineNum">      36 </span>                : #<B><FONT COLOR="#5F9EA0">include</FONT></B> <B><FONT COLOR="#BC8F8F">&quot;jdct.h&quot;</FONT></B>		<I><FONT COLOR="#B22222">/* Private declarations for DCT subsystem */</FONT></I>
<span class="lineNum">      37 </span>                : 
<span class="lineNum">      38 </span>                : #<B><FONT COLOR="#5F9EA0">ifdef</FONT></B> <FONT COLOR="#B8860B">DCT_IFAST_SUPPORTED</FONT>
<span class="lineNum">      39 </span>                : 
<span class="lineNum">      40 </span>                : 
<span class="lineNum">      41 </span>                : <I><FONT COLOR="#B22222">/*
<span class="lineNum">      42 </span>                :  * This module is specialized to the case DCTSIZE = 8.
<span class="lineNum">      43 </span>                :  */</FONT></I>
<span class="lineNum">      44 </span>                : 
<span class="lineNum">      45 </span>                : #<B><FONT COLOR="#5F9EA0">if</FONT></B> <FONT COLOR="#B8860B">DCTSIZE</FONT> != 8
<span class="lineNum">      46 </span>                :   Sorry, this code only copes with 8x8 DCTs. <I><FONT COLOR="#B22222">/* deliberate syntax err */</FONT></I>
<span class="lineNum">      47 </span>                : #<B><FONT COLOR="#5F9EA0">endif</FONT></B>
<span class="lineNum">      48 </span>                : 
<span class="lineNum">      49 </span>                : 
<span class="lineNum">      50 </span>                : <I><FONT COLOR="#B22222">/* Scaling decisions are generally the same as in the LL&amp;M algorithm;
<span class="lineNum">      51 </span>                :  * see jfdctint.c for more details.  However, we choose to descale
<span class="lineNum">      52 </span>                :  * (right shift) multiplication products as soon as they are formed,
<span class="lineNum">      53 </span>                :  * rather than carrying additional fractional bits into subsequent additions.
<span class="lineNum">      54 </span>                :  * This compromises accuracy slightly, but it lets us save a few shifts.
<span class="lineNum">      55 </span>                :  * More importantly, 16-bit arithmetic is then adequate (for 8-bit samples)
<span class="lineNum">      56 </span>                :  * everywhere except in the multiplications proper; this saves a good deal
<span class="lineNum">      57 </span>                :  * of work on 16-bit-int machines.
<span class="lineNum">      58 </span>                :  *
<span class="lineNum">      59 </span>                :  * Again to save a few shifts, the intermediate results between pass 1 and
<span class="lineNum">      60 </span>                :  * pass 2 are not upscaled, but are represented only to integral precision.
<span class="lineNum">      61 </span>                :  *
<span class="lineNum">      62 </span>                :  * A final compromise is to represent the multiplicative constants to only
<span class="lineNum">      63 </span>                :  * 8 fractional bits, rather than 13.  This saves some shifting work on some
<span class="lineNum">      64 </span>                :  * machines, and may also reduce the cost of multiplication (since there
<span class="lineNum">      65 </span>                :  * are fewer one-bits in the constants).
<span class="lineNum">      66 </span>                :  */</FONT></I>
<span class="lineNum">      67 </span>                : 
<span class="lineNum">      68 </span>                : #<B><FONT COLOR="#5F9EA0">define</FONT></B> <FONT COLOR="#B8860B">CONST_BITS</FONT>  8
<span class="lineNum">      69 </span>                : 
<span class="lineNum">      70 </span>                : 
<span class="lineNum">      71 </span>                : <I><FONT COLOR="#B22222">/* Some C compilers fail to reduce &quot;FIX(constant)&quot; at compile time, thus
<span class="lineNum">      72 </span>                :  * causing a lot of useless floating-point operations at run time.
<span class="lineNum">      73 </span>                :  * To get around this we use the following pre-calculated constants.
<span class="lineNum">      74 </span>                :  * If you change CONST_BITS you may want to add appropriate values.
<span class="lineNum">      75 </span>                :  * (With a reasonable C compiler, you can just rely on the FIX() macro...)
<span class="lineNum">      76 </span>                :  */</FONT></I>
<span class="lineNum">      77 </span>                : 
<span class="lineNum">      78 </span>                : #<B><FONT COLOR="#5F9EA0">if</FONT></B> <FONT COLOR="#B8860B">CONST_BITS</FONT> == 8
<span class="lineNum">      79 </span>                : #<B><FONT COLOR="#5F9EA0">define</FONT></B> <FONT COLOR="#B8860B">FIX_0_382683433</FONT>  ((INT32)   98)		<I><FONT COLOR="#B22222">/* FIX(0.382683433) */</FONT></I>
<span class="lineNum">      80 </span>                : #<B><FONT COLOR="#5F9EA0">define</FONT></B> <FONT COLOR="#B8860B">FIX_0_541196100</FONT>  ((INT32)  139)		<I><FONT COLOR="#B22222">/* FIX(0.541196100) */</FONT></I>
<span class="lineNum">      81 </span>                : #<B><FONT COLOR="#5F9EA0">define</FONT></B> <FONT COLOR="#B8860B">FIX_0_707106781</FONT>  ((INT32)  181)		<I><FONT COLOR="#B22222">/* FIX(0.707106781) */</FONT></I>
<span class="lineNum">      82 </span>                : #<B><FONT COLOR="#5F9EA0">define</FONT></B> <FONT COLOR="#B8860B">FIX_1_306562965</FONT>  ((INT32)  334)		<I><FONT COLOR="#B22222">/* FIX(1.306562965) */</FONT></I>
<span class="lineNum">      83 </span>                : #<B><FONT COLOR="#5F9EA0">else</FONT></B>
<span class="lineNum">      84 </span>                : #<B><FONT COLOR="#5F9EA0">define</FONT></B> <FONT COLOR="#B8860B">FIX_0_382683433</FONT>  FIX(0.382683433)
<span class="lineNum">      85 </span>                : #<B><FONT COLOR="#5F9EA0">define</FONT></B> <FONT COLOR="#B8860B">FIX_0_541196100</FONT>  FIX(0.541196100)
<span class="lineNum">      86 </span>                : #<B><FONT COLOR="#5F9EA0">define</FONT></B> <FONT COLOR="#B8860B">FIX_0_707106781</FONT>  FIX(0.707106781)
<span class="lineNum">      87 </span>                : #<B><FONT COLOR="#5F9EA0">define</FONT></B> <FONT COLOR="#B8860B">FIX_1_306562965</FONT>  FIX(1.306562965)
<span class="lineNum">      88 </span>                : #<B><FONT COLOR="#5F9EA0">endif</FONT></B>
<span class="lineNum">      89 </span>                : 
<span class="lineNum">      90 </span>                : 
<span class="lineNum">      91 </span>                : <I><FONT COLOR="#B22222">/* We can gain a little more speed, with a further compromise in accuracy,
<span class="lineNum">      92 </span>                :  * by omitting the addition in a descaling shift.  This yields an incorrectly
<span class="lineNum">      93 </span>                :  * rounded result half the time...
<span class="lineNum">      94 </span>                :  */</FONT></I>
<span class="lineNum">      95 </span>                : 
<span class="lineNum">      96 </span>                : #<B><FONT COLOR="#5F9EA0">ifndef</FONT></B> <FONT COLOR="#B8860B">USE_ACCURATE_ROUNDING</FONT>
<span class="lineNum">      97 </span>                : #<B><FONT COLOR="#5F9EA0">undef</FONT></B> <FONT COLOR="#B8860B">DESCALE</FONT>
<span class="lineNum">      98 </span>                : #<B><FONT COLOR="#5F9EA0">define</FONT></B> <B><FONT COLOR="#0000FF">DESCALE</FONT></B>(x,n)  RIGHT_SHIFT(x, n)
<span class="lineNum">      99 </span>                : #<B><FONT COLOR="#5F9EA0">endif</FONT></B>
<span class="lineNum">     100 </span>                : 
<span class="lineNum">     101 </span>                : 
<span class="lineNum">     102 </span>                : <I><FONT COLOR="#B22222">/* Multiply a DCTELEM variable by an INT32 constant, and immediately
<span class="lineNum">     103 </span>                :  * descale to yield a DCTELEM result.
<span class="lineNum">     104 </span>                :  */</FONT></I>
<span class="lineNum">     105 </span>                : 
<span class="lineNum">     106 </span>                : #<B><FONT COLOR="#5F9EA0">define</FONT></B> <B><FONT COLOR="#0000FF">MULTIPLY</FONT></B>(var,const)  ((DCTELEM) DESCALE((var) * (const), CONST_BITS))
<span class="lineNum">     107 </span>                : 
<span class="lineNum">     108 </span>                : 
<span class="lineNum">     109 </span>                : <I><FONT COLOR="#B22222">/*
<span class="lineNum">     110 </span>                :  * Perform the forward DCT on one block of samples.
<span class="lineNum">     111 </span>                :  */</FONT></I>
<span class="lineNum">     112 </span>                : 
<span class="lineNum">     113 </span>                : <B><FONT COLOR="#0000FF">GLOBAL</FONT></B>(<B><FONT COLOR="#228B22">void</FONT></B>)
<span class="lineNum">     114 </span><span class="lineCov">           37309: <B><FONT COLOR="#0000FF">jpeg_fdct_ifast</FONT></B> (DCTELEM * data)</span>
<span class="lineNum">     115 </span>                : {
<span class="lineNum">     116 </span>                :   DCTELEM tmp0, tmp1, tmp2, tmp3, tmp4, tmp5, tmp6, tmp7;
<span class="lineNum">     117 </span>                :   DCTELEM tmp10, tmp11, tmp12, tmp13;
<span class="lineNum">     118 </span>                :   DCTELEM z1, z2, z3, z4, z5, z11, z13;
<span class="lineNum">     119 </span>                :   DCTELEM *dataptr;
<span class="lineNum">     120 </span>                :   <B><FONT COLOR="#228B22">int</FONT></B> ctr;
<span class="lineNum">     121 </span>                :   SHIFT_TEMPS
<span class="lineNum">     122 </span>                : 
<span class="lineNum">     123 </span>                :   <I><FONT COLOR="#B22222">/* Pass 1: process rows. */</FONT></I>
<span class="lineNum">     124 </span>                : 
<span class="lineNum">     125 </span><span class="lineCov">           37309:   dataptr = data;</span>
<span class="branchGroup"><span class="lineNum">         </span><span class="branchTaken">          298472: branch 0 taken</span>
<span class="lineNum">         </span><span class="branchTaken">           37309: branch 1 taken</span>
</span><span class="lineNum">     126 </span><span class="lineCov">          335781:   <B><FONT COLOR="#A020F0">for</FONT></B> (ctr = DCTSIZE-1; ctr &gt;= 0; ctr--) {</span>
<span class="lineNum">     127 </span><span class="lineCov">          298472:     tmp0 = dataptr[0] + dataptr[7];</span>
<span class="lineNum">     128 </span><span class="lineCov">          298472:     tmp7 = dataptr[0] - dataptr[7];</span>
<span class="lineNum">     129 </span><span class="lineCov">          298472:     tmp1 = dataptr[1] + dataptr[6];</span>
<span class="lineNum">     130 </span><span class="lineCov">          298472:     tmp6 = dataptr[1] - dataptr[6];</span>
<span class="lineNum">     131 </span><span class="lineCov">          298472:     tmp2 = dataptr[2] + dataptr[5];</span>
<span class="lineNum">     132 </span><span class="lineCov">          298472:     tmp5 = dataptr[2] - dataptr[5];</span>
<span class="lineNum">     133 </span><span class="lineCov">          298472:     tmp3 = dataptr[3] + dataptr[4];</span>
<span class="lineNum">     134 </span><span class="lineCov">          298472:     tmp4 = dataptr[3] - dataptr[4];</span>
<span class="lineNum">     135 </span>                :     
<span class="lineNum">     136 </span>                :     <I><FONT COLOR="#B22222">/* Even part */</FONT></I>
<span class="lineNum">     137 </span>                :     
<span class="lineNum">     138 </span><span class="lineCov">          298472:     tmp10 = tmp0 + tmp3;	<I><FONT COLOR="#B22222">/* phase 2 */</FONT></I></span>
<span class="lineNum">     139 </span><span class="lineCov">          298472:     tmp13 = tmp0 - tmp3;</span>
<span class="lineNum">     140 </span><span class="lineCov">          298472:     tmp11 = tmp1 + tmp2;</span>
<span class="lineNum">     141 </span><span class="lineCov">          298472:     tmp12 = tmp1 - tmp2;</span>
<span class="lineNum">     142 </span>                :     
<span class="lineNum">     143 </span><span class="lineCov">          298472:     dataptr[0] = tmp10 + tmp11; <I><FONT COLOR="#B22222">/* phase 3 */</FONT></I></span>
<span class="lineNum">     144 </span><span class="lineCov">          298472:     dataptr[4] = tmp10 - tmp11;</span>
<span class="lineNum">     145 </span>                :     
<span class="lineNum">     146 </span><span class="lineCov">          298472:     z1 = MULTIPLY(tmp12 + tmp13, FIX_0_707106781); <I><FONT COLOR="#B22222">/* c4 */</FONT></I></span>
<span class="lineNum">     147 </span><span class="lineCov">          298472:     dataptr[2] = tmp13 + z1;	<I><FONT COLOR="#B22222">/* phase 5 */</FONT></I></span>
<span class="lineNum">     148 </span><span class="lineCov">          298472:     dataptr[6] = tmp13 - z1;</span>
<span class="lineNum">     149 </span>                :     
<span class="lineNum">     150 </span>                :     <I><FONT COLOR="#B22222">/* Odd part */</FONT></I>
<span class="lineNum">     151 </span>                : 
<span class="lineNum">     152 </span><span class="lineCov">          298472:     tmp10 = tmp4 + tmp5;	<I><FONT COLOR="#B22222">/* phase 2 */</FONT></I></span>
<span class="lineNum">     153 </span><span class="lineCov">          298472:     tmp11 = tmp5 + tmp6;</span>
<span class="lineNum">     154 </span><span class="lineCov">          298472:     tmp12 = tmp6 + tmp7;</span>
<span class="lineNum">     155 </span>                : 
<span class="lineNum">     156 </span>                :     <I><FONT COLOR="#B22222">/* The rotator is modified from fig 4-8 to avoid extra negations. */</FONT></I>
<span class="lineNum">     157 </span><span class="lineCov">          298472:     z5 = MULTIPLY(tmp10 - tmp12, FIX_0_382683433); <I><FONT COLOR="#B22222">/* c6 */</FONT></I></span>
<span class="lineNum">     158 </span><span class="lineCov">          298472:     z2 = MULTIPLY(tmp10, FIX_0_541196100) + z5; <I><FONT COLOR="#B22222">/* c2-c6 */</FONT></I></span>
<span class="lineNum">     159 </span><span class="lineCov">          298472:     z4 = MULTIPLY(tmp12, FIX_1_306562965) + z5; <I><FONT COLOR="#B22222">/* c2+c6 */</FONT></I></span>
<span class="lineNum">     160 </span><span class="lineCov">          298472:     z3 = MULTIPLY(tmp11, FIX_0_707106781); <I><FONT COLOR="#B22222">/* c4 */</FONT></I></span>
<span class="lineNum">     161 </span>                : 
<span class="lineNum">     162 </span><span class="lineCov">          298472:     z11 = tmp7 + z3;		<I><FONT COLOR="#B22222">/* phase 5 */</FONT></I></span>
<span class="lineNum">     163 </span><span class="lineCov">          298472:     z13 = tmp7 - z3;</span>
<span class="lineNum">     164 </span>                : 
<span class="lineNum">     165 </span><span class="lineCov">          298472:     dataptr[5] = z13 + z2;	<I><FONT COLOR="#B22222">/* phase 6 */</FONT></I></span>
<span class="lineNum">     166 </span><span class="lineCov">          298472:     dataptr[3] = z13 - z2;</span>
<span class="lineNum">     167 </span><span class="lineCov">          298472:     dataptr[1] = z11 + z4;</span>
<span class="lineNum">     168 </span><span class="lineCov">          298472:     dataptr[7] = z11 - z4;</span>
<span class="lineNum">     169 </span>                : 
<span class="lineNum">     170 </span><span class="lineCov">          298472:     dataptr += DCTSIZE;		<I><FONT COLOR="#B22222">/* advance pointer to next row */</FONT></I></span>
<span class="lineNum">     171 </span>                :   }
<span class="lineNum">     172 </span>                : 
<span class="lineNum">     173 </span>                :   <I><FONT COLOR="#B22222">/* Pass 2: process columns. */</FONT></I>
<span class="lineNum">     174 </span>                : 
<span class="lineNum">     175 </span><span class="lineCov">           37309:   dataptr = data;</span>
<span class="branchGroup"><span class="lineNum">         </span><span class="branchTaken">          298472: branch 0 taken</span>
<span class="lineNum">         </span><span class="branchTaken">           37309: branch 1 taken</span>
</span><span class="lineNum">     176 </span><span class="lineCov">          335781:   <B><FONT COLOR="#A020F0">for</FONT></B> (ctr = DCTSIZE-1; ctr &gt;= 0; ctr--) {</span>
<span class="lineNum">     177 </span><span class="lineCov">          298472:     tmp0 = dataptr[DCTSIZE*0] + dataptr[DCTSIZE*7];</span>
<span class="lineNum">     178 </span><span class="lineCov">          298472:     tmp7 = dataptr[DCTSIZE*0] - dataptr[DCTSIZE*7];</span>
<span class="lineNum">     179 </span><span class="lineCov">          298472:     tmp1 = dataptr[DCTSIZE*1] + dataptr[DCTSIZE*6];</span>
<span class="lineNum">     180 </span><span class="lineCov">          298472:     tmp6 = dataptr[DCTSIZE*1] - dataptr[DCTSIZE*6];</span>
<span class="lineNum">     181 </span><span class="lineCov">          298472:     tmp2 = dataptr[DCTSIZE*2] + dataptr[DCTSIZE*5];</span>
<span class="lineNum">     182 </span><span class="lineCov">          298472:     tmp5 = dataptr[DCTSIZE*2] - dataptr[DCTSIZE*5];</span>
<span class="lineNum">     183 </span><span class="lineCov">          298472:     tmp3 = dataptr[DCTSIZE*3] + dataptr[DCTSIZE*4];</span>
<span class="lineNum">     184 </span><span class="lineCov">          298472:     tmp4 = dataptr[DCTSIZE*3] - dataptr[DCTSIZE*4];</span>
<span class="lineNum">     185 </span>                :     
<span class="lineNum">     186 </span>                :     <I><FONT COLOR="#B22222">/* Even part */</FONT></I>
<span class="lineNum">     187 </span>                :     
<span class="lineNum">     188 </span><span class="lineCov">          298472:     tmp10 = tmp0 + tmp3;	<I><FONT COLOR="#B22222">/* phase 2 */</FONT></I></span>
<span class="lineNum">     189 </span><span class="lineCov">          298472:     tmp13 = tmp0 - tmp3;</span>
<span class="lineNum">     190 </span><span class="lineCov">          298472:     tmp11 = tmp1 + tmp2;</span>
<span class="lineNum">     191 </span><span class="lineCov">          298472:     tmp12 = tmp1 - tmp2;</span>
<span class="lineNum">     192 </span>                :     
<span class="lineNum">     193 </span><span class="lineCov">          298472:     dataptr[DCTSIZE*0] = tmp10 + tmp11; <I><FONT COLOR="#B22222">/* phase 3 */</FONT></I></span>
<span class="lineNum">     194 </span><span class="lineCov">          298472:     dataptr[DCTSIZE*4] = tmp10 - tmp11;</span>
<span class="lineNum">     195 </span>                :     
<span class="lineNum">     196 </span><span class="lineCov">          298472:     z1 = MULTIPLY(tmp12 + tmp13, FIX_0_707106781); <I><FONT COLOR="#B22222">/* c4 */</FONT></I></span>
<span class="lineNum">     197 </span><span class="lineCov">          298472:     dataptr[DCTSIZE*2] = tmp13 + z1; <I><FONT COLOR="#B22222">/* phase 5 */</FONT></I></span>
<span class="lineNum">     198 </span><span class="lineCov">          298472:     dataptr[DCTSIZE*6] = tmp13 - z1;</span>
<span class="lineNum">     199 </span>                :     
<span class="lineNum">     200 </span>                :     <I><FONT COLOR="#B22222">/* Odd part */</FONT></I>
<span class="lineNum">     201 </span>                : 
<span class="lineNum">     202 </span><span class="lineCov">          298472:     tmp10 = tmp4 + tmp5;	<I><FONT COLOR="#B22222">/* phase 2 */</FONT></I></span>
<span class="lineNum">     203 </span><span class="lineCov">          298472:     tmp11 = tmp5 + tmp6;</span>
<span class="lineNum">     204 </span><span class="lineCov">          298472:     tmp12 = tmp6 + tmp7;</span>
<span class="lineNum">     205 </span>                : 
<span class="lineNum">     206 </span>                :     <I><FONT COLOR="#B22222">/* The rotator is modified from fig 4-8 to avoid extra negations. */</FONT></I>
<span class="lineNum">     207 </span><span class="lineCov">          298472:     z5 = MULTIPLY(tmp10 - tmp12, FIX_0_382683433); <I><FONT COLOR="#B22222">/* c6 */</FONT></I></span>
<span class="lineNum">     208 </span><span class="lineCov">          298472:     z2 = MULTIPLY(tmp10, FIX_0_541196100) + z5; <I><FONT COLOR="#B22222">/* c2-c6 */</FONT></I></span>
<span class="lineNum">     209 </span><span class="lineCov">          298472:     z4 = MULTIPLY(tmp12, FIX_1_306562965) + z5; <I><FONT COLOR="#B22222">/* c2+c6 */</FONT></I></span>
<span class="lineNum">     210 </span><span class="lineCov">          298472:     z3 = MULTIPLY(tmp11, FIX_0_707106781); <I><FONT COLOR="#B22222">/* c4 */</FONT></I></span>
<span class="lineNum">     211 </span>                : 
<span class="lineNum">     212 </span><span class="lineCov">          298472:     z11 = tmp7 + z3;		<I><FONT COLOR="#B22222">/* phase 5 */</FONT></I></span>
<span class="lineNum">     213 </span><span class="lineCov">          298472:     z13 = tmp7 - z3;</span>
<span class="lineNum">     214 </span>                : 
<span class="lineNum">     215 </span><span class="lineCov">          298472:     dataptr[DCTSIZE*5] = z13 + z2; <I><FONT COLOR="#B22222">/* phase 6 */</FONT></I></span>
<span class="lineNum">     216 </span><span class="lineCov">          298472:     dataptr[DCTSIZE*3] = z13 - z2;</span>
<span class="lineNum">     217 </span><span class="lineCov">          298472:     dataptr[DCTSIZE*1] = z11 + z4;</span>
<span class="lineNum">     218 </span><span class="lineCov">          298472:     dataptr[DCTSIZE*7] = z11 - z4;</span>
<span class="lineNum">     219 </span>                : 
<span class="lineNum">     220 </span><span class="lineCov">          298472:     dataptr++;			<I><FONT COLOR="#B22222">/* advance pointer to next column */</FONT></I></span>
<span class="lineNum">     221 </span>                :   }
<span class="lineNum">     222 </span><span class="lineCov">           37309: }</span>
<span class="lineNum">     223 </span>                : 
<span class="lineNum">     224 </span>                : #<B><FONT COLOR="#5F9EA0">endif</FONT></B> <I><FONT COLOR="#B22222">/* DCT_IFAST_SUPPORTED */</FONT></I>
</pre>
<hr>
Generated: 2016-04-07&nbsp;17:52 by <a href="http://minormatter.com/zcov">zcov</a><br>
</body>
</html>
